package com.woniu.aggregation.api;

import com.woniu.aggregation.dto.*;
import com.woniu.aggregation.param.*;
import com.woniu.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

@FeignClient(
        value = "inpatient",
        contextId = "inpatient-2",
        path = "inpatient-2"
)
@Api(tags = "护士服务接口")
public interface NurseServicesQueryApi {
    @ApiOperation("根据条件查询患者住院信息")
    @GetMapping("listHospital")
    Result queryHospitalizationInformation(@RequestBody ListHospitalizationParam listHospitalizationParam);

    @ApiOperation("登记入住")
    @PutMapping("beHospitalIzed")
    Result<HospitalizationNewsDto> admissionRegistration(@RequestBody AddHospitalizationParam addHospitalizationParam);

    @ApiOperation("根据患者ID查询患者信息表，住院信息表")
    @GetMapping("getByidPatient")
    Result<InpatientInformationDto> nursesQueryPatientInformation(@RequestParam("patientId") Integer patientId);

    @ApiOperation("查询床位信息")
    @GetMapping("queryBed")
    Result queryBed(@RequestBody BedInformationParam bedInformationParam);

    @ApiOperation("查询病房信息")
    @GetMapping("wardInformation")
    Result wardInformation(@RequestBody WardInformationParam wardInformationParam);

//    @ApiOperation("查询病房床位联合信息")
//    @GetMapping("wardBedInformation")
//    Result<PageDTO<WardBedInformationDto>> WardBedInformation(@RequestBody WardBedInformationParam wardBedInformationParam);


    @ApiOperation("转床或者转科申请")
    @PutMapping("modifyBed")
    Result ModifyBedsAndWards(@RequestBody BedOrTransferParam bedOrTransferParam);

    @ApiOperation("新增护理")
    @PostMapping("addNursing")
    Result newCare(@RequestBody AddNursingParam addNursingParam);

    @ApiOperation("查询护理表")
    @GetMapping("getNursing")
    Result inquiryNursing(@RequestBody ListNurseingParam listNurseingParam);

    @ApiOperation("护士查询医嘱")
    @GetMapping("getOrder")
    Result nursesQueryMedicalOrders(@RequestBody ListOrdersParam listOrdersParam);

    @ApiOperation("护士执行医嘱修改医嘱状态")
    @PutMapping("modifyOrderStatus")
    Result modifyOrderStatus(@RequestBody ModifyOrderStatusParam modifyOrderStatusParam);

    @ApiOperation("出院登记")
    @PutMapping("leaveHospital")
    Result leaveHospital(@RequestBody ModifyHospitalParam modifyHospitalParam);




}
